package com.lablzh.gdxy.service;

import com.lablzh.gdxy.entity.design.Design;
import com.lablzh.gdxy.entity.design.DesignApply;
import com.lablzh.gdxy.entity.design.StudentDesign;
import org.springframework.data.domain.Page;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface DesignService {
    String applyCreate(Design design);

    String updateTeam(Design design);

    List<Design> getAllTeam();
    Page<Design> queryDesignSelective(Integer page, Integer limit);
    Page<Design> getAudited(String audit, Integer page, Integer limit);
    List<Design> getAudited(String audit);
    List<Design> teamTeacher();

    String updateStatus(Integer id, String status);

    String updateAudit(Integer id, String audit);

    String apply(Integer id);

    String undo(Integer id);

    List<DesignApply> applyTeacher(Integer id);


    List<DesignApply> applyStudent();

    String confirm(Integer id);

    String refuse(Integer id);


    List<StudentDesign> getDesignStudent();

    List<StudentDesign> getChoosed(Integer id);

    List<StudentDesign> getStudentByTransSummit(String summit, Integer id);

    List<StudentDesign> getStudentByReportSummit(String summit, Integer id);

    List<StudentDesign> getStudentByTransReview(String review, Integer id);

    List<StudentDesign> getStudentByReportReview(String review, Integer id);

    List<StudentDesign> getStudentByPaperSummit(String summit, Integer id);

    List<StudentDesign> getStudentByPaperReview(String review, Integer id);

    Map<String,Object> queryPerformance(StudentDesign studentDesign,int page);

    void downloadExcel(StudentDesign studentDesign, HttpServletRequest request, HttpServletResponse response, String sort) throws FileNotFoundException;

    void downloadChoose(String type, String college, String major, String grade,HttpServletRequest request, HttpServletResponse response) throws FileNotFoundException;

    void downloadArrangeByMajor(String college, String major,String department, String grade, String sort, HttpServletRequest request, HttpServletResponse response) throws FileNotFoundException;

    String review(Integer id, String type, String studentUsername, Integer score, String level, String note);

    Map<String, String> uploadReport(HttpServletRequest request, String category, Integer id) throws IOException;

    Design getTeamById(Integer id);

    void downloadDesign(String college, String grade, HttpServletRequest request, HttpServletResponse response) throws FileNotFoundException;


    String deleteTeam(Integer id);

   void dowloadArrange(String college, String grade,HttpServletResponse response,HttpServletRequest request) throws FileNotFoundException;

    Map<String, String> addTask(String category, Integer id, HttpServletRequest request) throws IOException;


    String auditTask(Integer id, String taskAudit);

    String deleteStudent(Integer id);
}
